package com.jing.system.utils.freeze;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.time.DateUtils;

import com.jing.system.utils.DateUtil;


/**
 * 冻结用户互粉的工具类
 * @author jing.yue
 * @version 1.0
 * @since 2012-10-11
 */
public class FreezeUserUtil {

	/** 解冻时间为45分钟 */
	private static final int FREEZE_MINUTES_TIME = 45;
	/**
	 * 记录冻结的用户信息
	 */
	private static List<String> freezeUsers = new ArrayList<String>();
	private static List<FreezeUser> freezeUserList = new ArrayList<FreezeUser>();

	/**
	 * 获取所有冻结的用户
	 * @return
	 */
	public static List<String> getFreezeUsers() {
		Date time = DateUtil.getTime();
		freezeUsers.clear();
		List<FreezeUser> freezeList = new ArrayList<FreezeUser>();
		for (FreezeUser freezeUser : freezeUserList) {
			//没有达到解冻时间则继续添加
			if(time.compareTo(freezeUser.getUnfreezetime()) < 0) {
				freezeList.add(freezeUser);
				freezeUsers.add(freezeUser.getUsername());
			}
		}
		freezeUserList.clear();
		freezeUserList.addAll(freezeList);
		return freezeUsers;
	}

	/**
	 * 添加冻结的用户
	 * @param key
	 */
	public static void addFreezeUser(String username) {
		Date freezetime = DateUtil.getTime();
		FreezeUser freezeUser = new FreezeUser();
		freezeUser.setUsername(username);
		freezeUser.setFreezetime(freezetime);
		freezeUser.setUnfreezetime(DateUtils.addMinutes(freezetime, FREEZE_MINUTES_TIME));
		freezeUserList.add(freezeUser);
		freezeUsers.add(username);
	}

}